//  -------------------- iSharePoint -------------------- //
// 
//  Company:	IT Complex, LLC
//  Project:	Smart.Common
//  File name:	IAddonManager.cs
//  Developer:	Solomatov Igor
//  Created:	15.04.2012
// 
//  -------------------- iSharePoint -------------------- //

using System.Runtime.CompilerServices;

namespace Smart.Common
{
	/// <summary>
	/// Addon manager interface
	/// </summary>
	public interface IAddonManager
	{
		/// <summary>
		/// Addons collection
		/// </summary>
		AddonList Addons { get; }

		/// <summary>
		/// Load addons
		/// </summary>
		void Load();

		/// <summary>
		/// Addons loaded flag
		/// </summary>
		bool Loaded { get; }

		/// <summary>
		/// Register addon
		/// </summary>
		void Reg(string addon);

		/// <summary>
		/// Unregister addon
		/// </summary>
		void Unreg(string addon);

		/// <summary>
		/// Reload addons
		/// </summary>
		[MethodImpl(MethodImplOptions.Synchronized)]
		void Reload();
	}
}